/*
  学习目标：创建泛型函数
  作用：捕获调用的参数类型，可以当做类型使用
  语法： fn<占位符>(aa: 占位符): 占位符{}
  👍 占位符优先使用T，type的缩写
  优势：比普通的函数类型，更容易复用
*/

function fn<T>(aa: T): T {
  // typeof '1' // string
  return aa;
}

let str = fn('1');

let num = fn(2);
let num2 = fn(true);
let num3 = fn([1]);
